--****en el servidor asereplicado****
--creación de la base de datos
use master
go

create database suscripciones_bdd
go 

use suscripciones_bdd
go

--  tablas de tlaxcala
create table suscriptor_tlax
(
	suscriptor_id 	number(10),
	nombre 			varchar(50),
	apellidos 		varchar(50),
	telefono 		number(12),
	domicilio 		varchar(50),
	estado 			varchar(50)		
)

create table editorial_tlax
(
	editorial_id 	number(10),
	nombre			varchar(50),
	telefono		number(12),
	domicilio		varchar(50),
	estado 			varchar(50),
)

create table genero
(
	genero_id 		number(10),
	tipo 			varchar(50)
)

create table escritor_tlax
(
	escritor_id 	number(10),
	genero_id 		number(10) 
)

create table frecuencia_salida
(
	frecuencia_salida_id 	number(10),
	periodo 		varchar(50)
)

create table tipo_publicacion
(
	tipo_publicacion_id 	number(10),
	tipo 					varchar(50)
)

create table publicacion_tlax
(
	publicacion_id	number(10),
	tipo_publicacion_id	number(10),
	frecuencia_salida_id number(10),
	editorial_id 		number(10),
	nombre 				varchar(150)
)

create table escritor_publicacion_tlax
(
	publicacion_id 	number(10),
	escritor_id 	number(10),
	fecha_inicio 	date
)

create table suscripcion_tlax
(
	folio 			number(10),
	suscriptor_id 	number(10),
	publicacion_id 	number(10),
	fecha_inicio 	date,
	duracion 		number(5)
)

-- definicion de llaves primarias en las tablas de tlaxcala
alter table suscripcion_tlax add constraint suscriptor_idpk primary key(suscriptor_id)
alter table editorial_tlax add constraint editorial_idpk primary key(editorial_id)
alter table genero add constraint genero_idpk primary key(genero_id)
alter table escritor_tlax add constraint escritor_idpk primary key(escritor_id)
alter table frecuencia_salida add constraint frecuencia_salida_idpk primary key(frecuencia_salida_id)
alter table tipo_publicacion add constraint tipo_publicacion_idpk primary key(tipo_publicacion_id)
alter table publicacion_tlax add constraint publicacion_idpk primary key(publicacion_id)
alter table suscripcion_tlax add constraint foliopk primary key(folio)

-- definicion de llaves foraneas
alter table escritor_tlax add constraint escritor_generofk foreign key(genero_id) references genero(genero_id)
alter table escritor_publicacion_tlax add constraint esc_pub_publicfk foreign key(publicacion_id) references publicacion_tlax(publicacion_id)
alter table escritor_publicacion_tlax add constraint esc_pub_escrfk foreign key(escritor_id) references escritor_tlax(escritor_id)
alter table publicacion_tlax add constraint frecuencia_salidafk foreign key (frecuencia_salida_id) references frecuencia_salida(frecuencia_salida_id)
alter table publicacion_tlax add constraint editorial_fk foreign key (editorial_id) references editorial_tlax(editorial_id)
alter table publicacion_tlax add constraint tipo_publicacionfk foreign key (tipo_publicacion_id) references tipo_publicacion(tipo_publicacion_id)
alter table suscripcion_tlax add constraint suscriptor_idfk foreign key (suscriptor_id) references suscriptor_tlax(suscriptor_id)
alter table suscripcion_tlax add constraint publicacion_idfk foreign key (publicacion_id) references publicacion_tlax(publicacion_id)

-- tablas para el estado de tabasco
create table suscriptor_tab
(
	suscriptor_id 	number(10),
	nombre 			varchar(50),
	apellidos 		varchar(50),
	telefono 		number(12),
	domicilio 		varchar(50),
	estado 			varchar(50)		
)

create table editorial_tab
(
	editorial_id 	number(10),
	nombre			varchar(50),
	telefono		number(12),
	domicilio		varchar(50),
	estado 			varchar(50),
)

/*create table genero
(
	genero_id 		number(10),
	tipo 			varchar(50)
)
*/
create table escritor_tab
(
	escritor_id 	number(10),
	genero_id 		number(10) 
)

/*create table frecuencia_salida
(
	frecuencia_salida_id 	number(10),
	periodo 		varchar(50)
)

create table tipo_publicacion
(
	tipo_publicacion_id 	number(10),
	tipo 					varchar(50)
)*/

create table publicacion_tab
(
	publicacion_id	number(10),
	tipo_publicacion_id	number(10),
	frecuencia_salida_id number(10),
	editorial_id 		number(10),
	nombre 				varchar(150)
)

create table escritor_publicacion_tab
(
	publicacion_id 	number(10),
	escritor_id 	number(10),
	fecha_inicio 	date
)

create table suscripcion_tab
(
	folio 			number(10),
	suscriptor_id 	number(10),
	publicacion_id 	number(10),
	fecha_inicio 	date,
	duracion 		number(5)
)

-- definicion de llaves primarias en las tablas de tabasco
alter table suscripcion_tab add constraint suscriptor_tabidpk primary key(suscriptor_id)
alter table editorial_tab add constraint editorial_tabidpk primary key(editorial_id)
alter table genero add constraint genero_tabidpk primary key(genero_id)
alter table escritor_tab add constraint escritor_tabidpk primary key(escritor_id)
alter table frecuencia_salida add constraint frecuencia_salida_tabidpk primary key(frecuencia_salida_id)
alter table tipo_publicacion add constraint tipo_publicacion_tabidpk primary key(tipo_publicacion_id)
alter table publicacion_tab add constraint publicacion_tabidpk primary key(publicacion_id)
alter table suscripcion_tab add constraint foliotabpk primary key(folio)

-- definicion de llaves foraneas
alter table escritor_tab add constraint escritor_generotabfk foreign key(genero_id) references genero(genero_id)
alter table escritor_publicacion_tab add constraint esc_pub_publictabfk foreign key(publicacion_id) references publicacion_tab(publicacion_id)
alter table escritor_publicacion_tab add constraint esc_pub_escrtabfk foreign key(escritor_id) references escritor_tab(escritor_id)
alter table publicacion_tab add constraint frecuencia_salidatabfk foreign key (frecuencia_salida_id) references frecuencia_salida(frecuencia_salida_id)
alter table publicacion_tab add constraint editorial_tabfk foreign key (editorial_id) references editorial_tab(editorial_id)
alter table publicacion_tab add constraint tipo_publicaciontabfk foreign key (tipo_publicacion_id) references tipo_publicacion(tipo_publicacion_id)
alter table suscripcion_tab add constraint suscriptor_idtabfk foreign key (suscriptor_id) references suscriptor_tab(suscriptor_id)
alter table suscripcion_tab add constraint publicacion_idtabfk foreign key (publicacion_id) references publicacion_tab(publicacion_id)

-- INICIA CREACION DE PROCEDIMIENTOS PARA CURL DE LAS TABLAS DE asereplicado

-- INSERTAR, ACTUALIZAR, BORRAR Y LEER DATOS DE UNA TABLA DESDE EL DF
--TRIGGERS 
